﻿#define _CRT_SECURE_NO_WARNINGS 1
#include"stdio.h"
//struct A
//{
//	int _a : 2;//只占2个二进制位
//	int _b : 5;//只占5个二进制位
//	int _c : 10;//只占10个二进制位
//	int _d : 30;//只占30个二进制位
//};//8
//struct B
//{
//	int _a;//0 1 2 3 
//	int _b;
//	int _c;
//	int _d;
//};//16
//int main()
//{
//	printf("%d\n", sizeof(struct A));
//	printf("%d\n", sizeof(struct B));
//}
//struct S
//{
//	char _a : 3;//先开出二进制位，然后把下面的数字以二进制方式放进去
//	char _b : 4;//要是想放个赋值的要先int它，再s._b=b；
//	char _c : 5;                   //int b =0;
//	char _d : 4;
//};
//int main()
//{
//	struct S s = { 0 };
//	s._a = 10;
//	s._b = 12;
//	s._c = 3;
//	s._d = 4;
//
//	printf("%d\n", sizeof(struct S));
//
//	return 0;
//}

struct A
{
	int _a : 2;
	int _b : 5;
	int _c : 10;
	int _d : 30;
};
int main()
{
	struct A sa = { 0 };
	scanf("%d", &sa._b);//这是错误的

	//正确的⽰范
	int b = 0;
	scanf("%d", &b);
	sa._b = b;
	return 0;
}
